iT邦幫忙

2023 iThome 鐵人賽

DAY 7
1
自我挑戰組

轉職新手學 Django 及 DRF系列 第 7

Day 7 - 製作第一個網頁 & CBVs vs FBVs

  • 分享至 

  • xImage
  •  

終於要進行第一個網頁的製作了,這邊會用到的概念是 view 處理請求的邏輯。當使用者輸入特定 url 時,該 url 配置的 view 便會進行邏輯處理並送出回應給使用者,接下來就來進行實作。

新增第一個視圖(view)

首先啟動虛擬環境,接著到core/views.py,來創建第一個視圖吧!輸入以下程式碼:

from django.http import HttpResponse

# 定義首頁的函式
def index(request):
    return HttpResponse("Hello, world!!!")

接著在core新增urls.py檔案,並在裡面輸入:

from django.urls import path

from . import views

# 這邊建議輸入與 app 一樣的名稱
app_name = 'core'

urlpatterns = [
    path("", views.index, name="index"),
]

這表示將請求送至此網址時(我的本地端網址為127.0.0.1:8000/),會用views.py中的index功能處理邏輯,而index會回傳"Hello, world!!!",所以在頁面就會看到這行字。接下來要到app/urls.py進行設定:

from django.contrib import admin
# 導入 include
from django.urls import path, include


urlpatterns = [
    path('admin/', admin.site.urls),
    # 將 app_name 中的 urls 加入
    path('', include('core.urls'))
]

最後,執行python manage.py runserver並進入網站看看成果吧!

Class-based views(CBVs) vs Funtion-based views(FBVs)

Django中 view 的寫法有兩種,一種是以 class 為單位,另一種是以 funtion 為單位(如同上面例子)。在 Django 中提供了一些通用的 CBVs 來實作常見的新增、修改及刪除物件的功能,因為是用 class 編寫,所以 CBVs 可通過繼承來擴展功能,也提高了程式碼重複使用性,實現 DRY(Don't Repeat Yourself) 原則。缺點為可讀性較差、較不好學及若使用裝飾器(decorator)需要導入;相反的,FBVs 的優點為可讀性高,較好學習也較直觀,但缺點為較不易擴展及重複性高(尤其在複雜專案中)。

比較 CBVs 及 FBVs 的文章

結語

恭喜成功創建自己的第一個網頁!!!雖然很簡單,但萬丈高樓皆平地起,接下來會先介紹完 app 裡面的其他檔案,再把剩下的網頁完成,預計會做一個簡單的註冊登入頁面。明天見~


上一篇
Day 6 - Django 的管理者頁面
下一篇
Day 8 - 關於 app 中沒看過的那些檔案
系列文
轉職新手學 Django 及 DRF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言